package forth

/*
	一个长度为n-1的递增排序数组中的所有数字都是唯一的，并且每个数字都在范围0～n-1之内。
	在范围0～n-1内的n个数字中有且只有一个数字不在该数组中，请找出这个数字。
	示例 1:

	输入: [0,1,3]
	输出: 2
	示例 2:

	输入: [0,1,2,3,4,5,6,7,9]
	输出: 8
*/

// 相同的两个数按位异或结果为0
func missingNumber(nums []int) int {
	ants := 0
	n := len(nums)
	for i := 0; i < n; i++ {
		ants ^= nums[i]
	}
	for i := 0; i <= n; i++ {
		ants ^= i
	}
	return ants
}
